package com.hundsun.cprs.yyt.service.quota.service;

import com.hundsun.cprs.yyt.service.quota.domain.QuotaExchangeRecord;
import com.hundsun.cprs.yyt.service.quota.domain.query.QuotaExchangeRecordQuery;
import com.hundsun.cprs.yyt.service.quota.dto.QuotaExchangeRecordInfo;

/**
 * 配额兑换记录相关接口
 * @author herong22384
 * @date 2019/8/6 14:20
 */
public interface QuotaExchangeRecordService {
    /**
     * 分页查询配额兑换记录
     * @param query
     * */
    void queryByPage(QuotaExchangeRecordQuery query);

    /**
     * 根据记录id查询兑换记录
     * @param recordId
     * */
    QuotaExchangeRecordInfo selectByRecordId(Long recordId);

    /**
     * 配额兑换接口（通用转专用）
     * @param userId
     * @param sourceQuotaId 源配额类型id（通用配额id）
     * @param aimQuotaId    目标配额类型id（专用配额id）
     * @param amount    待转数量
     * */
    void exchange(Long userId,Long sourceQuotaId,Long aimQuotaId,Long amount);

    /**
     * 手工释放冻结量
     * @param record    兑换记录id
     * @param amount    手工释放数量
     * */
    void unfreezeByHand(Long record,Long amount);

    /**
     * 定时释放接口
     * (每天定时遍历所有的配额兑换记录，将符合释放要求的配额进行释放)
     * */
    void unfreezeByQuartz();
}
